package com.tea.zxql.mapper;

import com.tea.zxql.domain.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author sdcfj
* @description 针对表【user】的数据库操作Mapper
* @createDate 2025-07-17 14:56:50
* @Entity com.tea.zxql.domain.User
*/
public interface UserMapper extends BaseMapper<User> {

    /**
     * 根据用户ID获取用户权限列表
     * @param userId 用户ID
     * @return 权限字符串列表
     */
    List<String> getPermission(@Param("userId") Integer userId);

    /**
     * 根据用户ID获取用户角色列表
     * @param userId 用户ID
     * @return 角色字符串列表
     */
    List<String> getRole(@Param("userId") Integer userId);

    /**
     * 根据用户ID获取用户角色
     * @param userId 用户ID
     * @return 角色字符串
     */
    String getRoleByUserId(@Param("userId") Integer userId);

    /**
     * 插入用户角色关联关系
     * @param userId 用户ID
     * @param roleId 角色ID
     */
    void insertUserRole(@Param("userId") Integer userId, @Param("roleId") Integer roleId);

    /**
     * 根据用户ID获取所属公司
     * @param userId 用户ID
     * @return 公司字符串
     */
    String getCompanyByUserId(@Param("userId") Integer userId);

    /**
     * 获取公司列表
     * @return 公司字符串列表
     */
    List<String> getCompanyList();

    /**
     * 根据前缀获取用户数量
     * @param prefix 前缀字符串
     * @return 用户数量
     */
    Integer getUserNum(@Param("prefix") String prefix);

    /**
     * 更新用户数量
     * @param start 起始值
     * @param endNum 结束值
     * @return 更新影响的行数
     */
    int updateUserNum(@Param("start")int start, @Param("endNum") int endNum);

    /**
     * 插入关键词
     * @param prefix 前缀字符串
     */
    void insertKeyWord(@Param("prefix")String prefix);

    /**
     * 更新关键词
     * @param prefix 前缀字符串
     * @param num 数量
     */
    void updateKeyWord(@Param("prefix")String prefix, @Param("num") int num);
}
